import re
#分组：匹配电话号码
pattern = r'(\d{3,4})-([1-9]\d{4,7}$)'#加上两个括号，即分为两个组
s = '010-1234567'
result = re.match(pattern,s)
print(result.group())#获取所有值
print(result.group(1))#获取第一组的值
print(result.group(2))#获取第二组的值
print(result.groups())#获取元组类型的值
print(result.groups()[0])#填写索引序号0获取第一组的值
print(result.groups()[1])#填写索引序号1获取第二组的值
#引用分组的字符串
#sub函数和subn函数
phone = '2004-959-559#这是一个国外的电话号码'
pattern = '#.*'
result = re.sub(pattern,'',phone)
print(result)
#删除非数字的字符串
pattern = r'\D'
result = re.sub(pattern,'',phone)
print(result)
#调用subn
result1 = re.subn(pattern,'',phone)
print(result1)#返回一个元组
print('替换的结果：',result1[0])#用subn函数用索引获取替换结果
print('替换的次数：',result1[1])#用subn函数用索引获取替换次数
#compile函数
pattern = r'\w+'
regex = re.compile(pattern)
s = 'one1swe_4'
print(regex.match(s))#与下面表述一致
print(re.match(pattern,s))
#findall函数 有值返回一个列表，无值返回空列表
s = 'one1swe _4 two2 @'
pattern = r'\w+'
result = re.findall(pattern,s)
print(result)#返回为列表，不包括符号,匹配多次
print(re.match(pattern,s))#匹配一次
print(re.search(pattern,s))#匹配一次
#finditer函数 返回一个迭代器
result = re.finditer(pattern,s)
# print(result)#返回一个迭代器，可进行遍历
for i in result:
    print(i)#获取出natch对象
#split函数 返回一个列表
s = 'a b 1 c2 d3 r t'
pattern = r'\d+'
result = re.split(pattern,s)
print(result)#每分隔后都用逗号代表分隔开一个元素
#指定分隔次数
print(re.split(pattern,s,maxsplit=2))
